package edu.nf.supermarket.web.controller.app;

import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;

/**
 * @author yjj
 * @date 2025-06-05
 */
@RestController
@RequestMapping("/api")
public class ProxyController {
    @GetMapping("/province")
    public ResponseEntity<String> getProvince() {
        // 使用 RestTemplate 请求第三方 API
        RestTemplate restTemplate = new RestTemplate();
        return restTemplate.getForEntity(
                "http://hmajax.itheima.net/api/province",
                String.class
        );
    }

    /**
     * ：ResponseEntity<String>，表示这个方法会返回一个完整的 HTTP 响应对象，包括状态码、头信息和响应体。
     *
     * @param provinceId
     * @return
     */
    @GetMapping("/city")
    public ResponseEntity<String> getCity(@RequestParam("pname") String provinceId) {
        // 使用 RestTemplate 请求第三方 API 作用：创建一个 Spring 提供的 RestTemplate 实例，用于发送 HTTP 请求。
        RestTemplate restTemplate = new RestTemplate();
        return restTemplate.getForEntity(
                "http://hmajax.itheima.net/api/city?pname=" + provinceId,
                String.class
        );
    }

    @GetMapping("/area")
    public ResponseEntity<String> getArea(@RequestParam("cname") String cityId, @RequestParam("pname") String provinceId) {
        // 使用 RestTemplate 请求第三方 API
        RestTemplate restTemplate = new RestTemplate();
        StringBuilder url = new StringBuilder("http://hmajax.itheima.net/api/area?cname=");
        url.append(cityId).append("&pname=").append(provinceId);
        return restTemplate.getForEntity(
                url.toString(),
                String.class
        );
    }
}
